﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using Grupo2.Persistencia;
using Grupo2.Dominio;

namespace Grupo2.Pruebas
{
    [TestFixture]
    public class TestPostulanteDAO
    {
        [Test]
        public void TestCrearPostulante()
        {
            Postulante nuevoPostulante = new Postulante();
            nuevoPostulante.Id_Postulante = 1;
            nuevoPostulante.Nombres = "Coqui";
            nuevoPostulante.Apellidos = "Duran";
            nuevoPostulante.Sexo = "M";
            nuevoPostulante.Profesion = "Ing Industrial";
            nuevoPostulante.Especialidad = "Maquinaria";
            nuevoPostulante.Ciudad_Domicilio = "Lima";
            nuevoPostulante.Direccion = "El Alamo 123";
            nuevoPostulante.Email = "CoquiD@gmail.com";
            nuevoPostulante.Password = "sfdsdfsd";
            nuevoPostulante.Dni = "01235678";
            nuevoPostulante.Fecha_Nacimiento = DateTime.Parse("05-10-1975");
            nuevoPostulante.Telefono = "47834793";
            nuevoPostulante.Referencia_Idiomas = "Frances";

            PostulanteDAO PostulanteDAO = new PostulanteDAO();
            Postulante PostulanteCreado = PostulanteDAO.CrearPostulante(nuevoPostulante);
            Assert.NotNull(PostulanteCreado);
        }
                
        [Test]       
        public void TestObtenerPostulante()
        {
            Int32 Id_Postulante_Buscado = 1;
            //Creamos un objeto del tipo PostulanteDAO
            PostulanteDAO PostulanteDAO = new PostulanteDAO();
            Postulante postulanteExistente = PostulanteDAO.ObtenerPostulante(Id_Postulante_Buscado);
            Assert.AreEqual(Id_Postulante_Buscado, postulanteExistente.Id_Postulante);
            Assert.NotNull(postulanteExistente.Id_Postulante);
        }
        [Test]
        public void ModificarPostulante()
        {
            String email_modificado = "pedro@hotmail.com";
            PostulanteDAO postulanteDAO = new PostulanteDAO();
            Postulante postulanteExistente = postulanteDAO.ObtenerPostulante(1);
            postulanteExistente.Email= email_modificado;
            Postulante postulanteModificado = null;
            Assert.Catch<Exception>(delegate
            {
                postulanteModificado = postulanteDAO.CrearPostulante(postulanteExistente);
            });

        }

        [Test]
        public void TestEliminarPostulante()
        {
            Int32 Id_postulante_Eliminar= 1;
            PostulanteDAO postulanteDAO = new PostulanteDAO();
            postulanteDAO.EliminarPostulante(Id_postulante_Eliminar);
            Postulante existe = postulanteDAO.ObtenerPostulante(Id_postulante_Eliminar);
            Assert.IsNull(existe);
        }       
    }
}
    